'''
Created on 16-07-2012

@author: Adam Hnat
'''
from AllegroProvider import AllegroProvider
from Database import Baza
from server.AuctionProvider import AuctionProvider

if __name__ == '__main__':
    pass

class MainServer(object):
    
    def __init__(self):
        self.baza = Baza()
        
    def updateMaxCena(self,url,maxCena):
        idp = self.baza.getPrzedmiotID(url)
        self.baza.updatePrzedmiotMaxCena(idprzedmiotu= idp, cena = maxCena)
        
    def updateDataStrzalu(self,url,data):
        idp = self.baza.getPrzedmiotID(url)
        self.baza.updatePrzedmiotStrzal(idp, data)
        
    def updateAktcena(self,url):
        idp = self.baza.getPrzedmiotID(url)
        aktcena = self.recognizeprovider(url).updateAktCena(url)
        self.baza.updatePrzedmiotAktCena(idp, aktcena)
        
    def addPrzedmiot(self,url,MaxCena=None,Strzal=None):
        PrzedmiotInfo = self.recognizeprovider(url).getPrzedmiotInfo(url)
        
        try:
            self.baza.addPrzedmiot(Nazwa=PrzedmiotInfo['Nazwa'],Url=PrzedmiotInfo['Url'],IDDostawcy= PrzedmiotInfo['IDDostawcy'], Koniec=PrzedmiotInfo['Koniec'])
        except NameError as e:
            print 'wystapil blad '+ e.message
        
        self.updateAktcena(url)
        
        if(MaxCena != None):
            self.updateMaxCena(url, MaxCena)
        
    def recognizeprovider(self,url):
        #TODO: 
        myp = AuctionProvider().recognizeProvider(url)
        helper = {
                    1: AllegroProvider()
#                    '2': EbayProvider().getPrzedmiotInfo(url)
#                    '3': SwistakProvider().getPrzedmiotInfo(url)
                    }
        provider = helper.get(myp)
        return provider
        #return provider.getPrzedmiotInfo(url)
    
    def updateStrzalDate(self,url,sek):
        idp = self.baza.getPrzedmiotID(url)
        self.baza.updatePrzedmiotStrzal(idp, secPrzedKoncem=sek)